GtkWindow: Use client pointer on pointer-dependent positioning.
authorCarlos Garnacho <carlosg@gnome.org>
Tue, 8 Jun 2010 13:19:32 +0000 (15:19 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Thu, 24 Jun 2010 00:30:54 +0000 (02:30 +0200)
GTK_WIN_POS_MOUSE and GTK_WIN_POS_CENTER* now work relatively to the client
pointer.

gtk/gtkwindow.c

index e09d73063867ab09a6523a839921d9e002b90a9d..37e1bed48f67d670be606f93476ddde9074f76e8 100644 (file)
@@ -5828,11 +5828,13 @@ get_monitor_containing_pointer (GtkWindow *window)
   GdkScreen *window_screen;
   GdkScreen *pointer_screen;
   GdkDisplay *display;
+  GdkDeviceManager *device_manager;
   GdkDevice *pointer;
 
   window_screen = gtk_window_check_screen (window);
   display = gdk_screen_get_display (window_screen);
-  pointer = gdk_display_get_core_pointer (display);
+  device_manager = gdk_display_get_device_manager (display);
+  pointer = gdk_device_manager_get_client_pointer (device_manager);
 
   gdk_display_get_device_state (display, pointer,
                                 &pointer_screen,
@@ -6020,12 +6022,15 @@ gtk_window_compute_configure_request (GtkWindow    *window,
            gint monitor_num;
            GdkRectangle monitor;
             GdkDisplay *display;
+            GdkDeviceManager *device_manager;
             GdkDevice *pointer;
             GdkScreen *pointer_screen;
             gint px, py;
 
             display = gdk_screen_get_display (screen);
-            pointer = gdk_display_get_core_pointer (display);
+            device_manager = gdk_display_get_device_manager (display);
+            pointer = gdk_device_manager_get_client_pointer (device_manager);
+
             gdk_display_get_device_state (display, pointer,
                                           &pointer_screen,
                                           &px, &py, NULL);